Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow CI testing on arm64 hardware #12080

Merged
merged 2 commits into from Mar 8, 2018
Merged

Allow CI testing on arm64 hardware #12080

merged 2 commits into from Mar 8, 2018

Conversation

jkleinsc
Copy link
Contributor

This PR adds the capability of building/testing our arm64 build on arm64 hardware.

There are a couple changes needed to do this:

  1. There isn't a prebuilt ninja binary available for arm64 so the docker image that is used includes a built from source ninja binary. Because the ninja binary isn't in the location it usually is, I added a parameter ninja-path to build.py to specify the location of the ninja binary.

  2. There isn't a prebuilt clang binary available for arm64, so I created a prebuilt binary for arm64 and updated script/update-clang.sh to pull the prebuilt binary from our s3 bucket.

  3. There is a new CI machine, https://arm64-ci.electronjs.org that I have provisioned for running our CI on actual arm64 hardware (in this case a 96 core arm64 machine that has 2 Cavium ThunderX ARMv8 SoC's).

@zcbenz
Copy link
Member

zcbenz commented Mar 1, 2018

Currently our toolchain setting requires cross-compiling on a x64 host, you would need to change toolchain.gypi to allow building on arm64.

@jkleinsc
Copy link
Contributor Author

jkleinsc commented Mar 1, 2018

@zcbenz it compiled on arm64 (and successfully ran most of the tests) without changing toolchain.gypi. What exactly would need to change?

@zcbenz
Copy link
Member

zcbenz commented Mar 1, 2018

@jkleinsc I didn't see you used arm64 build clang, that should be enough.

@jkleinsc jkleinsc changed the title Allow CI building on arm64 hardware Allow CI testing on arm64 hardware Mar 2, 2018
@jkleinsc jkleinsc changed the title Allow CI testing on arm64 hardware WIP Allow CI testing on arm64 hardware Mar 2, 2018
@jkleinsc
Copy link
Contributor Author

jkleinsc commented Mar 2, 2018

Setting this to WIP until arm64 builds crashing issue ( #12057) is resolved.

@jkleinsc jkleinsc changed the title WIP Allow CI testing on arm64 hardware [WIP] Allow CI testing on arm64 hardware Mar 2, 2018
@zcbenz
Copy link
Member

zcbenz commented Mar 8, 2018

I'm going to push my arm64 fixes to this branch.

@zcbenz zcbenz changed the title [WIP] Allow CI testing on arm64 hardware Allow CI testing on arm64 hardware Mar 8, 2018
@zcbenz
Copy link
Member

zcbenz commented Mar 8, 2018

ARM64 CI is only failing for a flaky test:

not ok 30 app module select-client-certificate event can respond with empty certificate list
  Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

This should be ready to be review/merged.

@alexeykuzmin
Copy link
Contributor

@jkleinsc Should we merge it? The same change has already been merged to 2-0-x.

@zcbenz zcbenz merged commit 3885674 into master Mar 8, 2018
@zcbenz zcbenz deleted the build-on-arm64-hw branch March 8, 2018 23:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants